#ifndef REDOOR_H
#define REDOOR_H

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdbool.h>
#include <stdint.h>

typedef struct {
    float prev_value;    // 上一次保留的值
    float max_slope;     // 最大允许斜率
    float min_slope;     // 最小允许斜率
    float deviation;     // 允许的偏差
    float delta_time;    // 假设的固定时间间隔（单位：秒）
} SwingingDoorState;

void swinging_door_init(SwingingDoorState *state, float deviation, float delta_time);
bool swinging_door_process(SwingingDoorState *state, float new_value);

#endif 